آموزش برنامه‌نویسی پیشرفته شیء‌گرا (OOP) در سیستم‌های نهفته با C++ [ویدئویی] - آخرین آپدیت

دانلود Advanced Embedded Object-Oriented Programming in C++ [Video]

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: برنامه‌نویسی شیء‌گرا در C++ می‌تواند سفت‌افزار (Firmware) سیستم‌های نهفته را در صورت توجه به محدودیت‌های حافظه و اجرا، ماژولارتر، تست‌پذیرتر و قابل نگهداری‌تر کند. این دوره بر به‌کارگیری اصول OOP در پروژه‌های میکروکنترلری تمرکز دارد، جایی که عملکرد (Performance) و کنترل سخت‌افزار همچنان حیاتی هستند. مسیر یادگیری با مفاهیم OOP در سیستم‌های نهفته، محدودیت‌های میکروکنترلر و استراتژی‌های بهینه‌سازی آغاز شده و سپس از برنامه‌نویسی رویه‌ای C به سمت سفت‌افزارهای مبتنی بر کلاس در C++ حرکت می‌کند. دانشجویان درایورهای GPIO، UART، FPU، SysTick، ADC، SPI، شتاب‌سنج و تایمر را پیاده‌سازی کرده و مفاهیمی مانند کپسوله‌سازی (Encapsulation)، RAII، سربارگذاری عملگرها (Operator Overloading)، تعامل با سخت‌افزار و طراحی کلاس‌های قابل استفاده مجدد را بررسی می‌کنند. تمرین‌های عملی با توسعه سفت‌افزاری که تجهیزات پیشرفته‌ای مانند DMA، RTC، ISR، PWR و حسگرهای محیطی را یکپارچه می‌کند، به اوج خود می‌رسد. فراگیران توانایی خود را در ایجاد تعادل بین معماری نرم‌افزاری تمیز و محدودیت‌های منابع سیستم‌های نهفته تقویت می‌کنند؛ در پایان این دوره، آن‌ها قادر خواهند بود سفت‌افزارهای C++ شیء‌گرایی طراحی کنند که ساختاریافته، بهینه و با سخت‌افزار سازگار باشد. - طراحی کلاس‌های درایور C++ برای تجهیزات STM32 - به‌کارگیری کپسوله‌سازی در سفت‌افزارهای سخت‌افزاری - استفاده از تکنیک‌های RAII برای مدیریت ایمن‌تر منابع - بهینه‌سازی طراحی‌های OOP برای حافظه Flash، RAM و سرعت اجرا - تبدیل درایورهای رویه‌ای C به کلاس‌های C++ - یکپارچه‌سازی حسگرها با سفت‌افزارهای شیء‌گرا این دوره برای مهندسان سیستم‌های نهفته، توسعه‌دهندگان Firmware و برنامه‌نویسان C/C++ است که می‌خواهند از برنامه‌نویسی رویه‌ای فراتر رفته و به سمت طراحی‌های شیء‌گرای قابل نگهداری حرکت کنند. با توجه به محتوای پیشرفته و متمرکز بر درایورها، آشنایی قبلی با توسعه میکروکنترلر و سینتکس پایه C++ ضروری است. تمرکز بر OOP نهفته با محوریت قابلیت نگهداری سفت‌افزار و تحلیل توازن محدودیت‌های میکروکنترلر * توسعه کلاس‌های درایور برای GPIO، UART، SPI، I2C، تایمرها، ADC و حسگرها * طراحی C++ با در نظر گرفتن عملکرد با استفاده از کپسوله‌سازی، RAII و تعامل سخت‌افزاری در درایورها

سرفصل ها و درس ها

مقدمه Introduction

  • خوش‌آمدگویی Welcome

  • مهم: درباره بخش درایورهای عمومی IMPORTANT: About the Generic Drivers Section

آشنایی با برنامه‌نویسی شیء‌گرا (OOP) نهفته در C++ Introduction to Embedded Object-Oriented Programming (OOP) in C++

  • برنامه‌نویسی شیء‌گرا در پروژه‌های بزرگ سفت‌افزارهای نهفته Object-Oriented Programming in Large Scale Embedded Firmware Projects

  • تصورات غلط درباره سربار OOP در میکروکنترلرها Misconceptions About OOP Overhead in Microcontrollers

  • چه زمانی از برنامه‌نویسی شیء‌گرا استفاده کنیم When to Use Object-Oriented Programming

  • چه زمانی از برنامه‌نویسی رویه‌ای استفاده کنیم When to Use Procedural Programming

  • تاثیر ویژگی‌های C++ بر حافظه Flash، RAM و سرعت اجرا How C++ Features Impact Flash, RAM and Execution Speed

محدودیت‌های میکروکنترلر و بهینه‌سازی برنامه‌نویسی شیء‌گرا Microcontroller Constraints & Object-Oriented Programming Optimization

  • چرا تخصیص حافظه پویا (Dynamic Memory) توصیه نمی‌شود Why Dynamic Memory Allocation is Discrouraged

  • چرا از C رویه‌ای به برنامه‌نویسی شیء‌گرا مهاجرت کنیم Why Transition from Procedural C to Object-Oriented Programming

راه‌اندازی محیط Setting Up

  • دانلود CubeIDE Downloading CubeIDE

  • نصب CubeIDE Installing CubeIDE

  • دریافت مستندات مورد نیاز Getting the required documentation

  • دریافت پکیج‌های لازم برای توسعه Bare Metal Getting the required package for bare-metal development

  • تست تنظیمات پروژه Testing the project setup

توسعه درایورهای عمومی برای مثال‌های اجرایی Developing Some Generic Drivers for Running Examples

  • فعال‌سازی واحد ممیز شناور (FPU) Enabling the Floating Point Unit (FPU)

  • توسعه درایور UART: تحلیل مستندات Developing a UART Driver - Analyzing the Documentation

  • توسعه درایور UART: لیست کردن مراحل Developing a UART Driver - Listing out the steps

  • توسعه درایور UART: پیاده‌سازی تابع Init Developing a UART Driver - Implementing the Init. function

  • توسعه درایور UART: پیاده‌سازی تابع Write Developing a UART Driver - Implementing the Write function

  • توسعه درایور UART: تست درایور Developing a UART Driver - Testing the Driver

  • توسعه Timebase سیستم: تحلیل مستندات Developing the System Timebase - Analyzing the Documentation

  • توسعه Timebase سیستم: پیاده‌سازی تابع Init Developing the System Timebase - Implementing the Init. function

  • توسعه Timebase سیستم: سایر توابع Developing the System Timebase - The rest of the functions

  • توسعه Timebase سیستم: تست Timebase Developing the System Timebase - Testing the Timebase

  • BSP: لیست کردن توابع مورد نیاز BSP : Listing the out the Required Functions

  • نوشتن درایور LED Writing the LED Driver

  • نوشتن درایور PushButton Writing the PushButton Driver

  • تست بسته پشتیبانی برد (BSP) Testing the Board Support Package

  • تحلیل مستندات Analyzing the Documentation

  • لیست کردن مراحل توسعه درایور ADC Listing out the steps for developing the ADC Driver

  • نوشتن تابع مقداردهی اولیه (Initialization) برای ADC Writing the ADC Initialization function

  • نوشتن تابع خواندن (Read) برای ADC Writing the ADC Read function

  • تحلیل مستندات برای درایور SPI Analyzing the Documentation for the SPI Driver

  • مقداردهی اولیه پین‌های GPIO برای SPI Intializing the GPIO Pins for SPI

  • پیاده‌سازی ساختارها برای پارامترهای پیکربندی Implementaing Structures for Configruation Parameters

  • پیکربندی پارامترها Configuring the Parameters

  • نوشتن تابع مقداردهی اولیه SPI Writing the SPI Initialization function

  • نوشتن تابع ارسال SPI (بخش اول) Writing the SPI Transmit Function (Pt.1)

  • نوشتن تابع ارسال SPI (بخش دوم) Writing the SPI Transmit Function (Pt.2)

  • ارسال داده‌های 16 بیتی Transmitting 16-bit Data

  • ارسال داده‌های 8 بیتی Transmitting 8-bit Data

  • دریافت داده‌ها Receiving Data

  • تست درایور SPI Testing the SPI Driver

  • تحلیل مستندات برای درایور I2C Analyzing the Documentation for the I2C Driver

  • I2C: مقداردهی اولیه GPIO I2C : The GPIO Initialization

  • پیکربندی پارامترهای I2C Configuring the I2C Parameters

  • پیاده‌سازی تابع خواندن I2C Implementing the I2C Read function

  • پیاده‌سازی تابع خواندن سریع (Burst Read) در I2C Implementing the I2C Burst Read function

  • پیاده‌سازی توابع نوشتن I2C Implementing the I2C Write functions

انتقال از C رویه‌ای به OOP در سفت‌افزارهای نهفته Transitioning from Procedural C to OOP in Embedded Firmware

  • اصول بازنویسی (Refactoring) کد C نهفته به C++ نهفته Principles for Refactoring Embedded C Code to Embedded C++

توسعه درایورهای تجهیزات جانبی با استفاده از کلاس‌های C++ Developing Peripheral Drivers Using C++ Classes

  • ساختار پایه یک کلاس درایور تجهیزات جانبی Basic Structure of a Peripheral Driver Class

  • درک مدیریت منابع بر پایه سازنده (Constructor) و تخریب‌کننده (Destructor) Understanding Constructor and Destructor Based Resource Management

  • کپسوله‌سازی با متدهای Getter و Setter Encapsulating with Getter and Setter Methods

  • چرا دسترسی مستقیم به حافظه (DMA) نیاز به کپسوله‌سازی دارد Why Direct Memory Access Needs Encapsulation

  • درک مفهوم RAII (اکتساب منبع، مقداردهی اولیه است) Understanding RAII (Resource Acquisition Is Initialization)

توسعه درایور کلاس GPIO در C++ Developing the GPIO C++ Class Driver

  • به‌روزرسانی Workspace Updating the Workspace

  • پیکربندی مسیرهای پروژه برای توسعه C++ Configuring the Project Paths for C++ Development

  • پیاده‌سازی اعضای Private کلاس Implementing the Private Members of the Class

  • پیاده‌سازی سازنده کلاس Implementing the Class Constructor

  • پیاده‌سازی متدهای کنترل پین Implementing the Pin Control Methods

  • تست کلاس GPIO Testing the GPIO Class

  • داشتن فایل‌های مجزا برای رابط (Interface) و پیاده‌سازی (Implementation) Having Separate Interface and Implementation Files

توسعه درایور کلاس UART در C++ Developing the UART C++ Class Driver

  • پیاده‌سازی اعضای Private Implementing the Private Members

  • پیاده‌سازی سازنده کلاس Implementing the Class Constructor

  • پیاده‌سازی متدهای Public Implementing the Public Methods

  • تست کلاس UART Testing the UART Class

توسعه درایور کلاس FPU در C++ Developing the FPU C++ Class Driver

  • پیاده‌سازی درایور کلاس FPU Implementing the FPU Class Driver

توسعه درایور کلاس تایمر SysTick در C++ Developing the SysTick Timer C++ Class Driver

  • پیاده‌سازی فایل رابط (Interface) Implementing the Interface File

  • پیاده‌سازی درایور کلاس SysTick Implementing the SysTick Class Driver

توسعه درایور کلاس ADC در C++ Developing the ADC C++ Class Driver

  • پیاده‌سازی اعضای Private Implementing the Private Members

  • پیاده‌سازی سازنده کلاس Implementing the Class Constructor

  • برنامه‌نویسی: پیاده‌سازی متد مقداردهی اولیه Programming; Implementing the Initialization Method

  • پیاده‌سازی متد خواندن ADC Implementing the ADC Read Method

  • تست کلاس ADC Testing the ADC Class

توسعه درایورهای کلاس SPI و شتاب‌سنج در C++ Developing the SPI and Accelerometer C++ Class Drivers

  • تحلیل درایور C نهفته برای SPI Analyzing the SPI Embedded-C Driver

  • تحلیل درایور C نهفته برای ADXL345 Analyzing the ADXL345 Embedded-C Driver

  • پیاده‌سازی فایل رابط Implementing the Interface File

  • پیاده‌سازی سازنده کلاس SPI Implementing the SPI Class Constructor

  • پیاده‌سازی سایر متدهای Private Implementing the Other Private Methods

  • پیاده‌سازی متد ارسال (Transmit) Implementing the Transmit Method

  • پیاده‌سازی متدهای دریافت (Receive) و انتخاب تراشه (Chip Select) Implementing the Receive and Chip Select Methods

  • پیاده‌سازی اعضای Private کلاس ADXL345 Implementing the ADXL345 Class- Private Members

  • پیاده‌سازی اعضای Public کلاس ADXL345 Implementing the ADXL345 Class- Public Members

  • پیاده‌سازی سازنده کلاس Implementing the Class Constructor

  • پیاده‌سازی متد writeRegister() Implementing the writeRegister( ) Method

  • پیاده‌سازی متد readRegister() Implementing the readRegister( ) Method

  • پیاده‌سازی متد مقداردهی اولیه ADXL345 Implementing the ADXL345 Initialization Method

  • پیاده‌سازی متد updateAccleration() Implementing the updateAccleration( ) Method

  • پیاده‌سازی متدهای بازگرداندن داده‌های شتاب Implementing the Methods for Returning Acceleration Data

سربارگذاری عملگر برای تعامل با سخت‌افزار در سیستم‌های نهفته Operator Overloading for Hardware Interaction in Embedded Systems

  • لیست کردن عملگرها Listing out the Operators

  • تعریف پروتوتایپ‌های متد Defining the Method Prototypes

  • پیاده‌سازی متدها (بخش اول) Implementing the Methods(Pt.1)

  • پیاده‌سازی متدها (بخش دوم) Implementing the Methods(Pt.2)

  • تست پیاده‌سازی عملگرهای GPIO Testing the GPIO Operator Implementation

نمایش نظرات

آموزش برنامه‌نویسی پیشرفته شیء‌گرا (OOP) در سیستم‌های نهفته با C++ [ویدئویی]
جزییات دوره
11h 0m
94
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
Israel Gbati
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Israel Gbati Israel Gbati

Embedded Firmware Engineer نام من اسرائیل است ، من بیش از 7 سال است که در فضای سیستم جاسازی شده تحقیق و کار می کنم. در Udemy ده ها هزار دانش آموز در سیستم های جاسازی شده با تمرکز بر موضوعاتی مانند برنامه نویسی Assembly ، طراحی سیستم عامل های زمان واقعی ، توسعه سیستم عامل و پردازش سیگنال دیجیتال آموزش داده ام. من قادر به آموزش این مباحث هستم زیرا در کارهای روزمره مفاهیمی را از این مباحث استفاده می کنم. به یکی از دوره های من بپیوندید و ببینید چطور پیش می رود. همیشه می توانید درخواست بازپرداخت کنید.